package com.martinwj.camera2demo.utils;

import android.content.Intent;
import android.text.InputFilter;
import android.text.Spanned;

import com.martinwj.camera2demo.constant.CameraConstant;

/**
 * author: wj
 * created on: 2021/6/10
 * description:
 */
public class TimeFilter implements InputFilter {
    /**
     *
     * @param source 新输入的字符串
     * @param start  新输入的字符串的起始下标，一般为0
     * @param end    新输入的字符串的终点下标，一般为source长度-1
     * @param dest   输入之前的文本框内容
     * @param dstart 新输入的字符串在原来字符串中的位置
     * @param dend   原内容终点坐标
     * @return 输入内容
     */
    @Override
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
        String sourceText = source.toString();
        String destText = dest.toString();
        if (dstart == 0 && "0".contentEquals(source)) {
            // 如果输入的是0，且位置在第一位的话，取消输入。
            return "";
        }

        StringBuilder totalText = new StringBuilder();
        totalText.append(destText.substring(0, dstart))
                .append(source)
                .append(destText.substring(dstart, destText.length()));

        try {
            if (Integer.parseInt(totalText.toString()) > CameraConstant.COUNT_DOWN_TIME_STR) {
                return String.valueOf(CameraConstant.COUNT_DOWN_TIME_STR);
            } else if (Integer.parseInt(totalText.toString()) == 0) {
                // 如果输入的是0，则取消输入
                return "";
            }
        } catch (Exception e) {
            return "";
        }
        if ("".equals(source.toString()) || "0".equals(source.toString())) {
            return "";
        }
        return "" + Integer.parseInt(source.toString());
    }
}
